#include<iostream>
#include<cstring>
#include<sys/types.h>
#include<unistd.h>
#include<fcntl.h>
#include<errno.h>
#include<stdio.h>
//#include"Log.hpp"
//using namespace std;

#define SIZE 1024

//Log lg;

void SetNoBlock()
{
    int cmd=fcntl(0,F_GETFL);
    if(cmd==-1)
    {
        //lg(Fatal,"fcntl fail,errno:%d,str:%s",errno,strerror(errno));
        printf("fcntl fail,errno:%d,str:%s\n",errno,strerror(errno));
    }
    fcntl(0,F_SETFL,cmd|O_NONBLOCK);
    //fcntl(0,c);
}

int main()
{
    SetNoBlock();
    while(1)
    {
        char s[SIZE];
        int n=read(0,s,sizeof(s));
        if(n>0)
        {
            s[n-1]=0;
            std::cout<<"Enter#"<<s<<std::endl;
        }
        else if(n==0)
        {
            continue;
        }
        else 
        {
            if(errno!=11)
            {
                //lg(Fatal,"READ fail,errno:%d,str:%s",errno,strerror(errno));
                printf("READ fail,errno:%d,str:%s\n",errno,strerror(errno));
            }
            else 
            {
                //lg(Info,"READ no ready,errno:%d,str:%s",errno,strerror(errno));
                printf("READ no ready,errno:%d,str:%s\n",errno,strerror(errno));
                sleep(1);
            }
        }
    }
}